package org.jeecg.modules.oms.vo;

import java.util.List;
import lombok.Data;
import org.jeecg.modules.oms.entity.ProductSalesOrder;
import org.jeecg.modules.oms.entity.ProductSalesOrderDetail;
import org.jeecg.modules.oms.entity.ProductSalesOrderTransaction;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import java.io.Serializable;

/**
 * 成品销售订单VO
 */
@Data
@ApiModel(value="成品销售订单及明细信息", description="成品销售订单及明细信息")
@EqualsAndHashCode(callSuper = true)
public class ProductSalesOrderVO extends ProductSalesOrder implements Serializable {
    private static final long serialVersionUID = 1L;
    
    @ApiModelProperty(value = "订单明细")
    @ExcelCollection(name="订单明细")
    private List<ProductSalesOrderDetail> productSalesOrderDetailList;
    
    /**
     * 查询开始日期
     */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "查询开始日期")
    private Date beginDate;
    
    /**
     * 查询结束日期
     */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "查询结束日期")
    private Date endDate;
    
    /**
     * 查询开始交付日期
     */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "查询开始交付日期")
    private Date beginDeliveryDate;
    
    /**
     * 查询结束交付日期
     */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "查询结束交付日期")
    private Date endDeliveryDate;

    /**
     * 交易记录信息
     */
    @ApiModelProperty(value = "交易记录信息")
    private ProductSalesOrderTransaction transaction;
    
    /**
     * 交易记录列表
     */
    @ApiModelProperty(value = "交易记录列表")
    private List<ProductSalesOrderTransaction> transactionList;
    
    /**
     * 支付方式
     */
    @Dict(dicCode = "payment_method")
    @ApiModelProperty(value = "支付方式")
    private Integer paymentMethod;
    
    /**
     * 交易类型
     */
    @Dict(dicCode = "transaction_type")
    @ApiModelProperty(value = "交易类型")
    private Integer transactionType;

    /**
     * 是否有汇总单
     */
    private Boolean hasSummaryFile;
    
    /**
     * 是否有优化单
     */
    private Boolean hasOptimizationFile;
    
    /**
     * 客户省市区
     */
    @ApiModelProperty(value = "客户省市区")
    private String customerArea;
} 